// 使用定时器模拟网络请求
// 处理返回结果

let test = false;

// 一、
if (test) {
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('aaa');
    }, 1000);
  }).then(res => {
    // 1. 先处理 后返回
    console.log(res, '第一层处理');

    // 2. 
    return new Promise((resolve) => {
      resolve(res + '111111');
    })
  }).then(res => {
    console.log(res, '第二层处理');

    return new Promise(resolve => {
      resolve(res + '222222');
    })
  }).then(res => {
    console.log(res + '第三层处理\n\n');
  })

}

// 二、简写Promise
if (test) {
  new Promise(resolve => {
    setTimeout(() => {
      resolve('aaa');
    }, 1000);
  }).then(res => {
    console.log(res, '第一层处理');

    return Promise.resolve(res + '111');
  }).then(res => {
    console.log(res, '第二层处理');

    return Promise.resolve(res + '222');
  }).then(res => {
    console.log(res, '第三层处理\n\n');
  })
}

// 三、Promise省略
new Promise(resolve => {
  setTimeout(() => {
    resolve('aaa');
  }, 1000);
}).then(res => {
  console.log(res, '第一层处理');

  // return res + '111';

  // return Promise.reject('erro message');

  throw 'throw error message';

}).then(res => {
  console.log(res, '第二层处理');
  return res + '222';

}).then(res => {
  console.log(res, '第三层处理');

}).catch(err => {
  console.log(err, '程序出现错误');
})